home *** CD-ROM | disk | FTP | other *** search
/ Revolution - Das Atari CD Magazin 1997 / Revolution - Das Atari CD Magazin 1.iso / software / anwendng / qed_397 / sourcen / wp_print.h < prev    next >
C/C++ Source or Header  |  1996-04-06  |  5KB  |  144 lines

  1. /*
  2.  * Schnittstelle für ASCII-Druckfunktionen, die einen Wordplus-Treiber
  3.  * benutzen.
  4.  * Basiert auf Modula2-Quellen von Uwe Mindrup, 1993
  5.  * PureC-Portierung von Christian Felsch, 1995
  6.  *
  7.  *  Druckertreiber;
  8.  *  Der Druckertreiber dient dazu, Texte mit Hilfe der reichlich vorhandenen
  9.  *  Druckeranpassungen für Wordplus ausdrucken zu können. Zur Initialisierung
  10.  *  muß eine CFG-Datei geladen werden.
  11.  *  Aufbau einer CFG-Datei:
  12.  *  - Header 'GST-CFG:'; dient als Kennung zur Unterscheidung von anderen
  13.  *                       Formaten.
  14.  *  - Es folgen sechs Bytes mit folgender Bedeutung:
  15.  *    (1)   1 für Typenrad mit horizontalem Spacing, sonst 0
  16.  *    (2)   Zeichenbreite in Druckereinheiten (Typenrad)
  17.  *    (3)   Zeilenabstand in Druckereinheiten
  18.  *    (4)   Wagenmitte (Typenrad); Pixel/Inch (Matrixdrucker)
  19.  *    (5)   Zeichenabstand bei Fettdruck (Typenrad)
  20.  *    (6)   1 Pause mit Abfrage zwischen Seiten, sonst 0
  21.  *    Diese Werte werden vom vorliegenden Modul ignoriert.
  22.  *
  23.  *  - Jetzt folgen die Druckercharakteristiken.
  24.  *    Diese Tabelle enthält die Steuersequenzen, die zur Steuerung des
  25.  *    Druckers benutzt werden (hoch, tief, fett, unterstrichen, kursiv,
  26.  *    Draft, NLQ etc).
  27.  *    Die Tabelle endet mit einem Null-Byte.
  28.  *  - Zuletzt folgt die Übersetzungstabelle. Hier werden einzelne Zeichen
  29.  *    in andere Zeichen (-folgen) umgesetzt.
  30.  *    Auch diese Tabelle endet mit einem Null-Byte.
  31.  *
  32.  *  Bei einer Initialisierung werden alle Aussschaltsequenzen der aktuellen
  33.  *  Druckqualität sowie die horizontale und vertikale Initialisierung durch-
  34.  *  laufen.
  35.  *  Sind die Sequenzen der Druckercharakteristiken für die beiden
  36.  *  Druckqualitäten gleich (unterscheiden sich also nur durch die Ein/Ausschalt-
  37.  *  sequenz für NLQ/Draft), dann reicht es aus, nur bei einer Ausschaltsequenz
  38.  *  die entsprechende Schriftqualität zu setzen (am besten bei einer selten
  39.  *  benötigten Sequenz, z.B. Index unten).
  40.  *  Mehr noch: Für die übrigen Druckercharakteristiken reicht es aus, wenn die
  41.  *  Sequenz nur in der einen Schriftqualität gesetzt wird. Der Treiber setzt die
  42.  *  Sequenz automatisch auch für die andere Schriftqualität ein.
  43.  *
  44.  */
  45. #ifndef _wp_print_h_ 
  46. #define _wp_print_h_ 
  47.  
  48. #include "portab.h"
  49.  
  50. /* 
  51.  * Exportierte Variablen
  52. */
  53. EXTERN    BOOLEAN    wp_config_read;
  54.  
  55.  
  56. #define PICA       0    /* 10 cpi */
  57. #define ELITE      1    /* 12 cpi */
  58. #define CONDENSED  2    /* 17 cpi */
  59. #define EXPANDED   3    /*  6 cpi */
  60. /* 
  61.  * Werte für die Zeichenbreite (SetMode)
  62. */
  63.  
  64.  
  65. BOOLEAN    WPLoadCFGFile    (UBYTE *name);
  66. /* 
  67.  * Eröffnung einer CFG-Datei. Der komplette Dateiname muß übergeben werden.
  68.  * Die Extension wird ggfs. automatisch korrigiert.
  69.  * Die Datei wird nach Eröffnung auf die Dateikennung in den ersten 8 Bytes
  70.  * überprüft ('GST-CFG:'). 
  71. */
  72.  
  73. VOID    WPGetPrnName        (UBYTE *Printername, WORD max_len);
  74. /* 
  75.  * Eingetragenen Druckernamen liefern. Falls keiner vorhanden ist, dann
  76.  * wird ein Leerstring ('') geliefert.
  77.  * max_len begrenzt die Namenslänge.
  78. */
  79.  
  80. BOOLEAN    WPSendExit        (VOID);
  81. /* 
  82.  * Es wird Eintrag 21H (Allgemeiner Druckerreset am Textende) gesendet.
  83. */
  84.  
  85. BOOLEAN    WPSendInit        (BOOLEAN use_nlq);
  86. /*
  87.  * Drucker-Initialisierung senden. Es werden nacheinander folgende
  88.  * Einträge geschickt (in Klammern die NLQ-Einträge):
  89.  * - Eintrag 20H       Horizontale Initialisierung
  90.  * - Eintrag 1FH       Vertikale Initialisierung
  91.  * - Eintrag  7H ( 9H) Fettschrift aus.
  92.  * - Eintrag  BH ( DH) Kursivschrift aus.
  93.  * - Eintrag  FH (11H) Light aus.
  94.  * - Eintrag 13H (15H) Superscript aus.
  95.  * - Eintrag 17H (19H) Subscript aus.
  96.  * - Eintrag 1BH (1DH) Unterstreichung aus.
  97.  * - Falls vorhanden, werden noch die folgenden Sequenzn geschickt:
  98.  * - Eintrag 28H (29H) PICA (10 CPI).
  99.  * - Eintrag 30H       Color-Einstellung: Black.
  100.  * - Eintrag 35H       Proportional-Schrift wird ausgeschaltet.
  101. */
  102.  
  103. BOOLEAN    WPSetMode        (WORD Mode);
  104. /*
  105.  * Zeichenbreite einstellen.
  106.  *   Achtung: vorher 'SendInit' durchführen!
  107.  *   Unterstützt werden:
  108.  *   - PICA      = 0;    (* 10 cpi *)
  109.  *   - ELITE     = 1;    (* 12 cpi *)
  110.  *   - CONDENSED = 2;    (* 17 cpi *)
  111.  *   - EXPANDED  = 3;    (*  6 cpi *)
  112. */
  113.  
  114. BOOLEAN    WPFormFeed        (VOID);
  115. /* 
  116.  * Seitenvorschub ausgeben
  117. */
  118.  
  119. VOID    WPSetTabSize        (WORD tab);
  120. /* 
  121.  * Tabulatorweite einstellen
  122. */
  123.  
  124. BOOLEAN    WPWriteLn        (VOID);
  125. /* 
  126.  * Zeilenvorschub generieren
  127. */
  128.  
  129. BOOLEAN    WPWrite            (UBYTE ch);
  130.  
  131. BOOLEAN    WPWriteString    (UBYTE *Str);
  132.  
  133. BOOLEAN    WPOpen            (UBYTE *Name);
  134. /* 
  135.  * Eröffnung eines Druckerkanals
  136. */
  137.  
  138. VOID    WPClose                (VOID);
  139. /* 
  140.  * Schließung eines Druckerkanals
  141. */
  142.  
  143. #endif
  144.